# 创建一个全新的video_processor.py文件，确保没有隐藏字符和编码问题
import os

# 文件路径
original_file = r'd:\未知\yolo_apply\video_processing\video_processor.py'
backup_file = r'd:\未知\yolo_apply\video_processing\video_processor.py.backup'
new_file = r'd:\未知\yolo_apply\video_processing\video_processor_new.py'

# 读取备份文件内容
with open(backup_file, 'r', encoding='utf-8', errors='replace') as f:
    lines = f.readlines()

# 创建一个新的文件内容列表
new_content = []
found_problem_area = False

for line in lines:
    # 检查是否找到问题区域的开始
    if '# 错误率过高时触发警告和恢复' in line:
        new_content.append(line)
        # 添加正确的代码行，确保没有任何隐藏字符
        new_content.append('                current_time = time.time()\n')
        new_content.append('                if error_count > 10 and (current_time - last_error_time > 30):\n')
        new_content.append('                    logger.warning("处理错误率过高: " + str(self.camera_id) + ", 最近错误数: " + str(error_count))\n')
        new_content.append('                    if hasattr(self, "_handle_error"):\n')
        new_content.append('                        self._handle_error(Exception("30秒内出现" + str(error_count) + "个错误"), "high_error_rate")\n')
        new_content.append('                    last_error_time = current_time\n')
        new_content.append('                    error_count = 0\n')
        found_problem_area = True
    # 跳过原来的问题代码行
    elif found_problem_area:
        if 'error_count = 0' in line:
            found_problem_area = False
    # 添加正常的代码行
    else:
        new_content.append(line)

# 写入新文件
with open(new_file, 'w', encoding='utf-8', newline='\n') as f:
    f.writelines(new_content)

# 重命名文件替换原文件
os.replace(new_file, original_file)

print(f"已创建全新的 {original_file} 文件，移除了所有可能的隐藏字符和编码问题")
print("现在让我们再次尝试编译...")